﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.ComponentModel;
using System.ComponentModel.DataAnnotations;
using Tecnosop.Dominio;

namespace Tecnosop.WebUI.Models
{
    public class NotaCreditoViewModel
    {
        //[HiddenInput(DisplayValue = true)]
        [DisplayName("Número nota crédito")]
        [Required(ErrorMessage = "Ingrese número nota crédito")]
        public int ID_NOTA_CREDITO { get; set; }

        [DisplayName("Razón social nota")]
        //[Required(ErrorMessage = "Ingrese una {0}")]
        public bool? EsRazonSocialTecnosopNota { get; set; }

        [DisplayName("Número factura")]
        [Required(ErrorMessage = "Ingrese número factura")]
        public int NUMERO_FACTURA { get; set; }


        [DisplayName("Razón social factura")]
        [Required(ErrorMessage = "Ingrese una {0}")]
        public bool? EsRazonSocialTecnosopFactura { get; set; }


        [DataType(DataType.MultilineText)]
        [DisplayName("Comentario")]
        [Required(ErrorMessage = "Ingrese comentario")]
        public string COMENTARIO { get; set; }

        [DataType(DataType.Currency)]
        [DisplayName("Monto")]
        [Required(ErrorMessage = "Ingrese monto")]
        public Nullable<int> MONTO { get; set; }

        [DataType(DataType.DateTime)]
        [DisplayName("Fecha")]
        [Required(ErrorMessage = "Ingrese fecha")]
        public Nullable<System.DateTime> FECHA { get; set; }
    }

    public class BusquedaNotaCreditoViewModel
    {
        [DisplayName("Criterios de búsqueda")]
        [UIHint("Enum")]
        [DataType("Criterios")]
        public CriteriosDeBusquedaNotaCredito Criterios { get; set; }

        [Required(ErrorMessage = "Debe ingresar algún término para la búsqueda")]
        public string AreaBusqueda { get; set; }
    }

    public enum CriteriosDeBusquedaNotaCredito
    {
        [Description("Factura Tecnosop")]
        Tecnosop,
        [Description("Factura razón social2")]
        otraRz,
        [Description("Rut cliente")]
        Rut,
        [Description("Número nota de crédito")]
        NumeroNotaCredito
    }

    public class ResultadoBusquedaNotaCreditoViewModel
    {
        public IEnumerable<NOTA_DE_CREDITO> Resultado { get; set; }
        public string CriterioParaOrdenar { get; set; }
    }
}